package com.zj.wanandroid.ui.page.splash

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.zj.wanandroid.theme.AppTheme
import com.zj.wanandroid.theme.white
import kotlinx.coroutines.delay

// 1. 使用@Composable声明可组合函数（UI组件入口）
@Composable
fun SplashPage(onNextPage: () -> Unit) {
    // 2. Box布局容器：占据整个屏幕空间
    Box(
        modifier = Modifier
            .fillMaxSize()          // 填满父容器尺寸
            .background(AppTheme.colors.themeUi),  // 设置主题背景色
        contentAlignment = Alignment.TopCenter  // 内容居中对齐
    ) {
        // 3. 延迟跳转逻辑（生命周期感知）
        /**
         * 在组件生命周期内执行一次性副作用操作
         * ​特点：
         *     [类似init块，在组件首次进入时执行]
         *     自动取消订阅，避免内存泄漏
         */
        LaunchedEffect(Unit) {  // 在组件挂载后立即执行
            delay(500)            // 延迟500毫秒
            onNextPage.invoke()    // 也就是执行方法体 isSplash = false
        }

        // 4. 显示启动文本
        Text(
            text = "Wan Android",    // 显示文本
            fontSize = 32.sp,      // 字体大小
            color = white,          // 文本颜色（需在主题中定义）
            fontWeight = FontWeight.Bold,  // 加粗字体
            modifier = Modifier
                .padding(0.dp, 150.dp, 0.dp, 0.dp)  // 上方填充150dp
        )
    }
}

